#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
struct node{
    ll x;
    ll id;
    bool operator < (const node &b)const{
        return abs(x) > abs(b.x) || (abs(x)==abs(b.x) && id>b.id);
    }
};
ll n, x, k, neg, zero;
inline int s(ll a){
    return a>0?1:-1;
}
priority_queue<node> q;

void print(){
    vector<int> ans(n);
    while (!q.empty()){
        auto t = q.top(); q.pop();
        ans[t.id] = t.x;
    }

}


int main() {
    ios::sync_with_stdio(false);cin.tie(nullptr);
    cin >> n >> k >> x;
    vector<ll> A(n);
    int sig = 1;
    for (int i = 0; i < n; ++i) {
        cin >> A[i];
        q.push({A[i], i});
        sig *= s(A[i]);
    }
    while(k--){
        auto t = q.top(); q.pop();
        int tmp = sig*s(t.x);
        A[t.id] -= tmp*x;
        sig = tmp * s(A[t.id]);
        q.push({A[t.id], t.id});
    }
    for (int i = 0; i < n; ++i) {
        if(i) cout << ' ';
        cout << A[i];
    }
    return 0;
}